win10编译opencv4.5.1+opencv 您所在的位置:网站首页 cmake opencv4 win10编译opencv4.5.1+opencv

win10编译opencv4.5.1+opencv

#win10编译opencv4.5.1+opencv| 来源: 网络整理| 查看: 265

前言:2020年12月,opencv 4.5.1版本发布,新版本更新了很多内容,比如:SIFT算法优化,新增BEBLID局部描述子等等。具体升级情况可移步opencv进行查看。由于最近在做一些图像匹配相关的工作,正好测试一下4.5.1版本的新功能。期间踩了一些坑,记录一下让大家尽量避开。

1 准备工作

Windows10系统

Visual Studio 2019:Visual Studio Community 2019

Cmake:cmake-3.20.0-rc3-windows-x86_64.msi

OpenCV 4.51:opencv-4.5.1.tar.gz

OpenCV_contrib 4.5.1:opencv_contrib-4.5.1.tar.gz

有的朋友找不到opencv的资源,其实很简单,直接在github搜opencv,选第一个opencv/opencv。然后看见以下仓库,就是opencv和opencv_contrib了。

选择红框的opencv,点tags,opencv的所有发行版本都出来了。opencv_contrib同理。

CUDA工具包:快捷键win+r,输入cmd,输入命令行nvidia-smi,找到对应的CUDA版本。我这里是11.0,CUDA Toolkit 11.0。把https://developer.nvidia.com/改成https://developer.nvidia.cn/NVIDIA DeveloperCUDA工具包:快捷键win+r,输入cmd,输入命令行nvidia-smi,找到对应的CUDA版本。我这里是11.0,CUDA Toolkit 11.0。

记得把https://developer.nvidia.com/改成https://developer.nvidia.cn/,你会发现打开Nivida官网如此简单!

cudnn:和CUDA11.0搭配的cudnn版本是cudnn 8.0.5,需要在Nivdia注册登录才能下载。

2 安装

2.1 安装Visual Studio 2019

有一个需要注意的,一定不要删除安装过程中的任何文件夹。我之前删除了一个存放下载文件的文件夹(安装过程中,我选择了安装完删除的,但是安装完发现还有十几M文件),删了以后发现系统检测不到我安装VS2019了,cmake检测不到编译器,虽然点图标依然能用VS。没办法,只能把从Visual Studio installer那里重新安装一次。

2.2 CUDA+cudnn

官方安装教程

CUDA:CUDA Toolkit Documentation

cuDNN:NVIDIA Deep Learning cuDNN Documentation

其实根本不用看教程,就是双击cuda.exe安装精简版,然后解压cudnn,把解压文件复制到cuda安装文件夹C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0

教程里说要添加环境变量之类的,其实不用,因为安装cudu.exe的时候已经添加完成了。

测试是否安装成功:

i. win+r输入cmd,控制台输入nvcc -V

ii. 控制台输入cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\demo_suite

再输入bandwidthTest.exe,显示Result = PASS

输入deviceQuery.exe,同样显示Result = PASS,那就是OK了!

2.3 cmake编译opencv

2.3.1 安装cmake

双击cmake.exe就行了,安装过程中选择添加到系统环境变量。

2.3.2 编译

将下载好的opencv 4.5.1和opencv_contrib 4.5.1解压,放到一个文件夹里面(opencv451),再到opencv451文件夹新建build文件夹.

在cmake里添加opencv4.5.1文件夹和build文件夹

第一次点configure,默认的选择就好了。如果你需要在其他平台跑,就在第二个框选择你的平台,默认行x64.

点击Finish,第二次点击configure,开始编译了,现在等待ing

因为有的文件是需要搭梯子的,比如ippicv,有条件的朋友自行解决,没有的我会把.cache文件夹打包(有这个就不用下载了).

configure done后,在search框内输入cuda,三个全部将value打勾。

search框搜MODULES,在OPENCV_EXTRA_MODULES_RATH一项,添加opencv_contrib4.5.1中的modules目录

search框搜NON,把OPENCV_ENABLE_NONFREE 的value打勾。

search框搜world,将build_opencv_world的value打勾,将所有opencv的库都编译在一起不需要自己一一添加每个小模块。

如果你的电脑配置一般,我建议你找到列表中的“BUILD_TESTS”,“BUILD_PERF_TESTS”,“BUILD_EXAMPLES”,把勾去掉,可以缩短最后生成解决方案的时间。电脑还可以的朋友建议保留。

第三次点击configure,再次等待,会出现Configuring done

再次搜索框输入cuda,CUDA_ARCH_BIN中将显卡的算力内容改成自己显卡的算力,我将小于7的都删除了。

查看显卡算力网址https://developer.nvidia.com/cuda-gpus

第四次点击confige,这次的Configuring done终于OK,然后点击Generate,稍等片刻出现Generating done

然后点击Open Project,它会启动你的Visual Studio

很多兄弟不会搭梯子,所以cmake的东西下不下来,这个专门把.cache文件夹 给放网盘了。不限速的网盘!!!点个赞再走吧。本链接2021/6/10更新

密码:7beq

由于上传限制,分成了1和2两个压缩包,记得下载下来以后统一放到.cache里面。

2.4 Visual Studio编译+配置

2.4.1 编译生成opencv

i. 使用VS2019打开刚刚编译工程后,会反应一段时间,一定要等待左下角显示的项全部加载完毕才可以继续操作

ii. 选择Release x64,接着找到“CmakeTargets”下的“ALL_BUILD”,右键→“生成”,然后开始漫长的等待……

等待大概一两个小时吧,期间最好不要让电脑做其他工作,不然可能卡死。

生成成功是这个样子的。一般是不会有error的,如果有请查看详情,是否cmake阶段没搞好。

iii. 解决方案资源管理器—>CMakeTargets—>INSTALL—>生成”然后又是等,好在这次时间很短。完成后你的build文件夹中会出现一个install文件夹,这就是完成了。

2.4.2 配置VS2019+opencv4.5.1

配置阶段其实和直接安装exe文件的过程是一样的,install文件夹就是需要配置的目录。

i. 环境变量配置

右键电脑【属性】—【高级系统设置】—【环境变量】—【系统变量】—【Path】

将编译目录“ D:\opencv451\build\install\x64\vc15\bin”的完整路径添加到【Path】 ,具体路径根据你自己Cmake时的路径进行修改。 环境变量配置好后,重启系统。

ii. 属性管理器配置

打开vs2019-新建-空项目,把Debug的X86改成release X64

【视图】—【其他窗口】—【属性管理器】

Release|x64右键添加新项目属性表,新建属性表,以后其他的项目把它复制到你的项目,直接添加属性表就可以用了。注意,最好属性表命名为opencv451,以后有其他版本好区分。

双击打开刚才建好的属性表opencv451,点击VC++目录

包含目录:D:\setup\opencv451\build\install\include

D:\setup\opencv451\build\install\include\opencv2

具体路径根据你的安装目录来

库目录:D:\setup\opencv451\build\install\x64\vc16\lib

【链接器】—【输入】—【附加的依赖项】中添加opencv_world451.lib

(如果你生成的是debug版本,那就是添加opencv_world451d.lib)

点确定,大功告成!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有